[小ネタ]Fivetranのdbt Transformationで出力先のデータベースを変更する方法
さがらです。
小ネタですが、Fivetranのdbt Transformationで出力先のデータベースを変更する方法についてまとめます。
Fivetranのdbt Transformationとは
dbtで開発した処理を、Fivetran上で実行できる機能です。
2023年11月2日時点では、dbtのコードを保持するGitHubなどのリモートリポジトリと連携することで対象のリポジトリのdbtのコードを読み取り、Fivetran上で実行することができます。Fivetranのデータロードが完了したことをトリガーにdbtの処理を実行できるのも便利な点ですね。
下記のブログでも手順をまとめていますので、こちらも参考になると幸いです。
- スケジューリング設定をFivetran上の画面設定で行う方法
- スケジューリング設定をdbtのコード上で定義して行う方法
背景
dbt Transformationの設定を行う際、デフォルトの設定のまま進めると、「Fivetranがロードするデータベース」と「dbt加工を行った結果を保持するデータベース」が同じデータベースになってしまいます。
Fivetran用のデータベースはただでさえ複数のコネクタが混在してスキーマが多くなりがちなのに、さらにdbtで加工した結果まで別スキーマに保持されたら、管理が大変になってしまいますよね。
そのため、「dbt Transformationの出力先を違うデータベースにしたい」という要望は多々あると感じています。
結論:設定の「Credentials」で「Use dedicated credentials」を選択しましょう
ということでいきなり結論なのですが、dbt Transformationの設定の際、「Credentials」で「Use dedicated credentials」を選択すればOKです!
デフォルトだと、「Use connector credentials」となっているのでこのままだとDestinationに設定されているデータベースがそのままdbtの出力先として使われてしまいます。
しかし、「Use dedicated credentials」を選択すると、改めて使用するウェアハウス、出力先のデータベース、使用するユーザーとロール、を設定することができます。
やってみた
Destinationの設定はsagara_fivetran_db
、dbt Transformationの設定は「Use dedicated credentials」でsagara_dbt_demo_db
を選択します。
ちなみに、dbt Transformationでの出力先のスキーマは「Default Schema Name」から設定可能です。ここではproduction
を指定しておきます。
注意点として、2023年11月2日時点では初回の設定時のみしか「Default Schema Name」を設定できず、以降は変更することができません。「Default Schema Name」を変更するためには、一度dbt Transformationの設定を削除する必要があり、Fivetranサポートに問い合わせが必要となります。
この状態で下図のTransformationを実行すると、無事にdbtで生成されるオブジェクトがsagara_dbt_demo_db
に出力されました!
最後に
簡単ですが、Fivetranのdbt Transformationで出力先のデータベースを変更する方法についてまとめてみました。
出力先のデータベースを変更したいことのほうが多いと思いますので、その際はぜひ試してみてください!